
struct Node
{
	int val;
	Node* left;
	Node* right;
};
bool isValid(Node* root,int& min,int& max)
{
	if(root == NULL)
		return true;
	if(min < root->val && root->val < max)
		return isValid(root->left,min,root->val) && isValid(root->right,root->val,max);
	return false;
}